package godzilla.ciudad.estructuras;

import java.util.Iterator;
import java.util.LinkedList;

import org.json.JSONObject;

public class BaseDeDatosEstructuras {
	
	static LinkedList<Estructura> listaDeEstructuras;
	
	static{
		listaDeEstructuras = new LinkedList<Estructura>();
		listaDeEstructuras.add(new EdificioResidencial());
		listaDeEstructuras.add(new EdificioComercial());
		listaDeEstructuras.add(new EdificioIndustrial());
		listaDeEstructuras.add(new CableadoElectrico());
		listaDeEstructuras.add(new TuberiaDeAgua());
		listaDeEstructuras.add(new Ruta());
		listaDeEstructuras.add(new CentralEolica());
		listaDeEstructuras.add(new CentralMineral());
		listaDeEstructuras.add(new CentralNuclear());
		listaDeEstructuras.add(new EstacionDeBomberos());
		listaDeEstructuras.add(new PozoDeAgua());
		listaDeEstructuras.add(new TerrenoVacio());
	}

	public static Estructura reconocerEstructura(JSONObject estructuraJSON) {
		
		String nombre = estructuraJSON.getString("Nombre");
		
		Estructura estructuraADevolver = buscarEstructuraConElNombre(nombre);
		return estructuraADevolver;

		
	}

	private static Estructura buscarEstructuraConElNombre(String nombre) {
		
		Iterator<Estructura> iterador = listaDeEstructuras.iterator();
		
		while (iterador.hasNext()){
			Estructura estructura = iterador.next();
			if (estructura.nombre().equals(nombre)) return estructura.duplicar();
			
			
		}
		return null;
		
	}

}
